「AWS版GitHub?Amazon CodeCatalystの全体像をまとめてみた」というタイトルで登壇しました #yumemi_grow
はじめに
おのやんです。
この度、AWS Jr. Champions × YUMEMI.grow AWS勉強会というイベントで登壇しました。この発表で使用したスライドを公開しましたので、発表内容のダイジェストを踏まえて簡単に紹介したいと思います。
イベント詳細
今回私は、こちらのAWS Jr. Champions × YUMEMI.grow AWS勉強会というイベントに登壇しました。2024年度に選出されたJr.Championが、株式会社ゆめみさんが開催する勉強会であるゆめみgrowと一緒に企画して、今回開催となりました。
\ AWS Jr. Champions × YUMEMI.grow AWS勉強会 /
AWSをテーマとしたLT会です❗
Japan AWS Jr. Championsとゆめみgrowがコラボレーションしてお届けするイベントです。幅広いスキルレベルの参加者がAWSの最新技術や活用方法を学ぶ機会を提供します。
スライド詳細
スライド概要
先日、AWS CodePipeline(以下、CodePipeline)とGitHubを連携する機会がありました。私はそこで、CodePipelineとGitHubを接続できるAWS CodeStarというサービスのキャッチアップを行おうとしました。
しかし、このサービスは2024年7月31日以降に新規のプロジェクトの作成ができなくなっていました。
またAWS CodeCommitも新規アクセスが停止されるとXでポストされているため、CodePipelineとGitHubの接続について調べていました。
その過程でAWS CodeCatalyst(以下、CodeCatalyst)を検証しました。その時に.NETのサンプルアプリケーションをデプロイして、CodeCatalystの全体像を整理していました。
CodeCatalystは、AWSサービスとは独立したサービスであり、AWSアカウントとCodeCatalystのSpaceという管理コンポーネントと紐づけて運用します。各SpaceにはProjectという単位があり、その中で個別のアプリケーションのソースコードやIssue・プルリク、CI/CDを管理しています。
アプリケーションのデプロイでは、.NETのサービスをAWS Lambdaの関数にデプロイしています。このデプロイはCI/CDによって管理されていて、プルリクエストの際にテストを自動で実行したり、mainブランチへのマージでデプロイできたりします。
またアプリケーションとは別に、CodeCatalyst側でS3バケットが作成され、ビルドアーティファクトがここに保存されたりします。
さらにCodeCatalystならではの機能として、ブループリントがあります。ひとつのプロジェクトをもとにブループリントとしてテンプレート化し、プロジェクトの新規作成時にもろもろの設定を流用できます。
ここまでざっとCodeCatalystを触ってきて、各機能やコンセプトがかなりGitHubに似ているなと感じました。Issueやプルリクエストは、機能も名前もそのまんまですし、CI/CD周りの操作感もGitHub Actionsっぽいなという所感です。
CodePipelineのパイプラインは、CodeCommitやCodeBuild、CodeDeployといった個別のAWSサービスを組み合わせてAWSアカウントないで実装するようなものでした。これに比べて、CodeCatalystはあくまでひとつの独立したサービスであり、その中で機能を提供している印象でした。名前こそ頭にCodeとついていますが、全く別のサービスと言っていいと思います。
一方で、上述のS3バケットなどはREADMEに書いてあったから把握できたものの、裏側で起動するAWSサービスありそうだなと感じました。S3バケットのホスティング代だけでなく、大きいインスタンスタイプによる多額の従量課金が知らず知らずのうちに...みたいなケースも想像できてしまいます。ここは注意したほうがいいですね。
またCodeCatalystは使えるリージョンに制限があります。現状、現実的なのはオハイオリージョンだ思っているので、オハイオリージョンにコードを保管してもOKな環境なら、これらのユースケースだとCodeCatalystが選択肢に入ってくると思います。
CodeCatalystのこれからに期待
機能としては十分に面白そうなサービスでした。AWSとは独立した環境で、コードのホスティグやCICDワークフロー設定などいろいろできたりします。一方でリージョンに制限があったり、まだまだ伸び代が感じられるサービスでもあります。
AWSでソースコードを管理できる新たな選択肢として、CodeCatalystを触ってみてはいかがでしょうか?では!